perm filename IO[1,BGB] blob
sn#023235 filedate 1973-02-23 generic text, type T, neo UTF8
00100 SUBR(GETFIL)------------------------------------------------------
00200 BEGIN GETFIL;SETUP FILE SPEC FROM TTY LINE - BGB - 10 DEC 72.
00300 SETZM FILNAM↔SETZM EXTION↔SETZM EXTION+1↔SETZM PPPN
00400 OUTSTR[ASCIZ/ FILE = /]
00500 LAC 1,[POINT 6,FILNAM,-1]↔LACI 2,6
00600 INCHWL↔CAIN 15↔GO[INCHWL↔POP2J]↔AOSA(P)
00700 L: INCHWL
00800 CAIN"."↔GO[LAC 1,[POINT 6,EXTION,-1]↔LACI 2,3↔GO L]
00900 CAIN"["↔GO[LAC 1,[POINT 6,PPPN,-1] ↔LACI 2,3↔GO L]
01000 CAIN","↔GO[LAC 1,[POINT 6,PPPN,17] ↔LACI 2,3↔GO L]
01100 CAIN"]"↔GO L
01200 CAIN 15↔GO EOL ;END OF THE LINE.
01300 CAIN 12↔GO EOL
01400 CAIG" "↔GO L ;IGNORE GARBAGE.
01500 SOJL 2,L↔SUBI 40↔IDPB 1↔GO L
01600
01700 EOL: INCHWL
01800 SKIPN 1,EXTION↔LAC 1,ARG2↔DAC 1,EXTION
01900 SKIPN FLGBGB↔POP2J
02000 ;BGB'S DEFAULT PROJECT SPECIFICATION.
02100 SKIPN 1,PPPN↔ LAC 1,ARG1↔DAC 1,PPPN
02200 POP2J
02300 BEND;12/10/72------------------------------------------------------
02400
02500 FILNAM: 0 ;FILE NAME.
02600 EXTION: 0 ;EXTENSION.
02700 0
02800 PPPN: 0 ;PROJECT-PROGRAMMER.
00100 SUBR(TVDSKI)------------------------------------------------------
00200 BEGIN TVDSKI;INPUT TV PICTURE FROM A DISK FILE - BGB 6 DEC 72.
00300 CALL(GETFIL,[SIXBIT/TMP/],[0])↔POP0J
00400 CALL(SEGTV)
00500 INIT 1,17↔SIXBIT/DSK/↔0↔HALT
00600 LOOKUP 1,FILNAM↔GO[OUTSTR[ASCIZ/ LOOKUP FAILED.
00700 /]↔GO .+4]
00800 IN 1,DUMARG↔JFCL
00900 OUTSTR[ASCIZ" EOF.
01000 "]↔ RELEASE 1,
01100 POP0J
01200 DUMARG: IOWD 24400,HEADER↔0
01300 BEND;12/14/72-----------------------------------------------------
01400
01500 SUBR(TVDSKO)------------------------------------------------------
01600 BEGIN TVDSKO;INPUT TV PICTURE FROM A DISK FILE - BGB 6 DEC 72.
01700 CALL(GETFIL,[SIXBIT/TMP/],[0])↔POP0J
01800 CALL(SEGTV)
01900 INIT 1,17↔SIXBIT/DSK/↔0↔HALT
02000 ENTER 1,FILNAM↔GO[OUTSTR[ASCIZ/ ENTER FAILED.
02100 /]↔GO .+4]
02200 OUT 1,DUMARG↔JFCL
02300 OUTSTR[ASCIZ" EOF.
02400 "]↔ RELEASE 1,
02500 POP0J
02600 DUMARG: IOWD 24400,HEADER↔0
02700 BEND;12/14/72-----------------------------------------------------
00100
00200 SUBR(PLOTO)-------------------------------------------------------
00300 BEGIN PLOTO;DISPLAY BUFFER TO DISK FILE - BGB 10 DEC 1972.
00400 CALL(GETFIL,[SIXBIT/PLT/],[0])↔POP0J
00500 LAC 1,DPYBUF↔LACN(1)1↔SUBI 2
00600 CDR 2,(1)↔SETZM 1(2)
00700 MOVS↔LAPI -1(1)↔DAC DUMLST
00800 INIT 1,17↔SIXBIT/DSK/↔0↔HALT
00900 ENTER 1,FILNAM↔GO .+4
01000 OUT 1,DUMLST↔JFCL
01100 OUTSTR[ASCIZ" EOF.
01200 "]↔ RELEASE 1,
01300 POP0J
01400 DUMLST: 0↔0
01500 BEND;12/10/72------------------------------------------------------
00100 SUBR(TVXGP)-------------------------------------------------------
00200 BEGIN TVXGP; VIDEO BUFFER TO XEROX GRAPHICS PRINTER.
00300 ;BGB - 19 JANUARY 1973.
00400 ;ONE TO SIXTEEN EXPANSION: 216*4=864 BY (288*4=1152 OR 32 WORDS)
00500 ;XGP BUFFER SIZE 28513 = 864 LINES * 33 WORDS PER LINE + 1.
00600 ACCUMULATORS{S2,S3,I,J,K,Q,P1,P2}
00700
00800 ;EXPAND CORE FOR XGP BUFFER.
00900 LAC 44↔DAC SAV44#↔ADDI =28513↔IORI 1777
01000 CALLI 11↔GO L4↔CALL(SEGTV)
01100 CDR 1,SAV44↔SETZM(1)↔DIP 1,1↔AOS 1↔CDR 2,44↔BLT 1,(2)
01200
01300 ;PUT CONTROL WORD IN EACH ROW.
01400 LAC[1B11+=192B23+=32]↔LAC 1,SAV44↔AOS 1↔LACI 2,=864
01500 DAC(1)↔ADDI 1,=33↔SOJG 2,.-2↔SLACI 577000↔DAC(1)
01600
01700 LAC P1,[POINT 6,TVBUF,-1]
01800 LAC P2,SAV44↔ADDI P2,2
01900 LACI I,=216
02000 L1: LACI J,=32
02100 L2: SETZB 0,1↔SETZB 2,3
02200 LACI K,=9
02300 L3: ILDB Q,P1↔CAMGE Q,HCUT↔SETZ Q,↔SKIPE Q↔LACI Q,70
02400 ROTC 0,4↔ROTC 2,4
02500 IOR 0,HTT+0(Q)↔IOR 1,HTT+1(Q)↔IOR 2,HTT+2(Q)↔IOR 3,HTT+3(Q)
02600 SOJG K,L3
02700 DAC 0,=00(P2)↔DAC 1,=33(P2)↔DAC 2,=66(P2)↔DAC 3,=99(P2)
02800 AOS P2
02900 SOJG J,L2
03000 ADDI P2,=100
03100 SOJG I,L1
03200
03300 DETSEG
03400 ;GRAB THE DEVICE.
03500 INIT 1,17↔SIXBIT/XGP/↔0↔GO[OUTSTR[
03600 ASCIZ/ CAN'T INIT XGP.
03700 /]↔ POP0J]
03800 LAC SAV44↔DAP DUMARG↔DAP DUMARG+1↔DAP DUMARG+2
03900 OUT 1,DUMARG↔RELEASE 1,
04000 LAC SAV44↔CALLI 11
04100 L4: OUTSTR[ASCIZ/ NOT ENUF CORE FOR XGP BUFFER.
04200 /]↔ CRLF↔POP0J
04300 DUMARG: XWD -=28513,0
04400 XWD -=28513,0
04500 XWD -=28513,0↔0
04600
00100 ;HALF TONE TABLE.
00200 HTT:
00300 17↔17↔17↔17 ; 2 LINES HORIZONTAL TOGETHER. 0
00400 00↔17↔00↔17 ; 2 LINES HORIZONTAL 1
00500 06↔06↔06↔06 ; 2 LINES VERTICAL TOGETHER 2
00600 00↔07↔07↔07 ; 9 DOTS TOGETHER 3
00700
00800 11↔06↔06↔11 ; BOTH DIAGONAL 4
00900 00↔17↔07↔00 ; 8 DOTS TOGETHER 5
01000 00↔00↔07↔07 ; 6 DOTS TOGETHER 6
01100 00↔06↔06↔00 ; 4 DOTS TOGETHER 7
01200
01300 17↔00↔00↔00 ; 1 LINE HORIZONTAL 10
01400 10↔10↔10↔10 ; 1 LINE VERTICAL 11
01500 10↔04↔02↔01 ; 1 LINE DIAGONAL 12
01600 00↔07↔00↔00 ; 3 DOTS TOGETHER 13
01700
01800 00↔03↔00↔00 ; 2 DOTS TOGETHER 14
01900 00↔01↔00↔40 ; 2 DOTS APART 15
02000 00↔01↔00↔00 ; 1 DOT 16
02100 00↔00↔00↔00 ; NOTHING. 17
02200
02300 BEND;1/19/73-------------------------------------------------------
00100 SUBR(CREOUT)------------------------------------------------------
00200 BEGIN CREOUT; CONTOUR,REGION,EDGE FILE FORMAT OUTPUT.
00300 ;BGB - 6 DECEMBER 1972.
00400 LAC CTRL↔AND META↔SKIPE↔GO FONTO
00500 SKIPN CTRL↔GO TVDSKO
00600
00700 CALL(GETFIL,[SIXBIT/CRE/],[0])↔POP0J
00800 CALL(SHRINK)
00900 LACN FILM↔CALL(RELLOC,0)
01000
01100 ;SETUP DUMP OUT ARGUMENT IOWD.
01200 LAC FILM↔SUB@AVAIL
01300 LACM 1,0↔MOVSS
01400 LAP OLD44↔DAC OUTARG
01500 LAC@FILM↔DAC TMP#↔DAC 1,@FILM ;FILE SIZE IN WORDS.
01600
01700 ;FILE OUTPUT RITUAL.
01800 LAC@AVAIL↔SUB FILM↔DAC@AVAIL
01900 INIT 1,17↔SIXBIT/DSK/↔0↔HALT
02000 ENTER 1,FILNAM
02100 GO[OUTSTR[ASCIZ/ ENTER FAILED.
02200 /]↔GO .+4]
02300 OUT 1,OUTARG↔JFCL
02400 OUTSTR[ASCIZ" EOF.
02500 "]↔ RELEASE 1,
02600 SETZM FILNAM↔SETZ EXTION↔SETZM EXTION+1↔SETZM PPPN
02700 CALL(RELLOC,FILM)
02800 LAC TMP↔DAC@FILM
02900 LAC@AVAIL↔ADD FILM↔DAC@AVAIL
03000 POP0J
03100 OUTARG: 0↔0
03200 BEND;1/28/73------------------------------------------------------
00100 SUBR(CREIN)-------------------------------------------------------
00200 BEGIN CREIN; CONTOUR,REGION,EDGE FILE FORMAT INPUT.
00300 ;BGB - 28 JANURAY 1973.
00400 LAC CTRL↔AND META↔SKIPE↔GO FONTI
00500 SKIPN CTRL↔GO TVDSKI
00600 CALL(GETFIL,[SIXBIT/CRE/],[0])↔POP0J
00700 INIT 1,17↔SIXBIT/DSK/↔0↔HALT
00800 LOOKUP 1,FILNAM↔JFCL
00900
01000 SETZM QBLK
01100 LAC PPPN↔LAP FILM↔SOS↔DAC INARG ;IOWD
01200
01300 MOVS PPPN↔MOVMS↔ADD FILM
01400 IORI 1777↔CAMG 44↔GO L1
01500 CALLI 11↔HALT
01600 LAC 44↔AOS↔SUB FILM↔DIVI 7↔DAC 1,REMAINDER
01700 L1: IN 1,INARG
01800 RELEASE 1,
01900 OUTSTR[ASCIZ" EOF.
02000 "]↔ RELEASE 1,
02100 SETZM FILNAM↔SETZM EXTION↔SETZM EXTION+1↔SETZM PPPN
02200
02300 CDR@AVAIL↔ADD FILM↔DAC@AVAIL↔SETZM@
02400 DIP↔AOS↔LAC 1,44↔BLT(1) ;CLEAR EMPTY AREA.
02500 CALL(RELLOC,FILM)
02600
02700 ;RESET AVAIL LIST.
02800 LAC 1,@AVAIL↔LAC 2,44
02900 LIPI 1,NODSIZ(1)↔GO L6
03000 L5: HLRZM 1,(1)↔ADD 1,[XWD NODSIZ,NODSIZ]
03100 L6: CAILE 2,NODSIZ+NODSIZ-1(1)↔GO L5
03200 SUBI 2,NODSIZ-1(1)↔DAC 2,REMAINDER
03300
03400 CALL(DPYIMG)
03500 POP0J
03600 INARG: 0↔0
03700 BEND;1/28/73------------------------------------------------------
00100 SUBR(FONTI)-------------------------------------------------------
00200 BEGIN FONTI;FONT FILE INPUT - BGB - 1 FEBRUARY 1973.
00300
00400 CALL(GETFIL,[SIXBIT/XAP/],[0])↔POP0J
00500 INIT 1,17↔SIXBIT/DSK/↔0↔HALT
00600 LOOKUP 1,FILNAM↔JFCL
00700 LAC PPPN↔LAPI $↔SOS↔DAC INARG ;IOWD.
00800 MOVS PPPN↔MOVMS↔ADDI $↔CORE2↔HALT ;MAKE UPPER SEG.
00900 LAC[SIXBIT/FNTSEG/]↔CALLI $+36↔JFCL ;NAME UPPER SEG.
01000 IN 1,[INARG:0↔0]
01100 RELEASE 1,
01200 POP0J
01300
01400 BEND;2/1/73-------------------------------------------------------
01500
01600 SUBR(FONTO)-------------------------------------------------------
01700 BEGIN FONTO;FONT FILE OUTPUT - BGB - 1 FEBRUARY 1973.
01800 EXTERN ENDPTR
01900 CALL(GETFIL,[SIXBIT/XAP/],[0])↔POP0J
02000 INIT 1,17↔SIXBIT/DSK/↔0↔HALT
02100 ENTER 1,FILNAM↔JFCL
02200 LAC ENDPTR↔SUBI $-1↔MOVNS↔DIP OUTARG
02300 LACI $-1↔DAP OUTARG
02400 OUT 1,OUTARG
02700 RELEASE 1,
02800 POP0J
02900 OUTARG: 0↔0
03000
03100 BEND;2/1/73-------------------------------------------------------
00100 SUBR(RELLOC)BASE--------------------------------------------------
00200 BEGIN RELLOC;RELOCATE ALL POINTERS - BGB - 6 DECEMBER 1972.
00300 ACCUMULATORS{A,B,C,D}
00400 DEFINE KAR(Q){CAR Q(A)↔SKIPE↔ADD B↔DIP Q(A)↔GO .+1}
00500 DEFINE KDR(Q){CDR Q(A)↔SKIPE↔ADD B↔DAP Q(A)↔GO .+1}
00600
00700 LAC B,ARG1 ;BASE ADDRESS.
00800 LAC A,FILM ;BLOCK POINTER.
00900
01000 L1: SKIPN(A)2↔GO[KDR 0↔GO L2] ;EMPTY BLOCK.
01100
01200 RELOC D,A↔TRNE D,400000↔LACI D,333333
01300 TRNE D,200000↔GO[KAR 0]↔ TRNE D,100000↔GO[KDR 0]
01400 TRNE D,20000 ↔GO[KAR 1]↔ TRNE D,10000 ↔GO[KDR 1]
01500 TRNE D,2000 ↔GO[KAR 3]↔ TRNE D,1000 ↔GO[KDR 3]
01600 TRNE D,200 ↔GO[KAR 4]↔ TRNE D,100 ↔GO[KDR 4]
01700 TRNE D,20 ↔GO[KAR 5]↔ TRNE D,10 ↔GO[KDR 5]
01800 TRNE D,2 ↔GO[KAR 6]↔ TRNE D,1 ↔GO[KDR 6]
01900
02000 L2: ADDI A,7+7↔CAML A,44↔POP1J
02100 SUBI A,7
02200 GO L1
02300 LIT
02400 BEND;12/20/72-----------------------------------------------------
00100 SUBR(TVIN4)------------------------------------------------------
00200 BEGIN TVIN4; FOUR BIT TELEVISION INPUT - BGB - 14 DEC 1972.
00300
00400 L0: INIT 17,17↔SIXBIT/TV/↔0
00500 GO[OUTSTR[ASCIZ"CAN'T INIT TV."]↔INCHRW↔GO .-3]
00600 SETZM TVERR↔INPUT 17,TVPTR↔RELEASE 17,
00700
00800 ;REPORT ON THE ERROR BITS AND RETAKE IF NECESSARY;
00900 LAC 1,TVERR
01000 TRNE 1,100000↔OUTSTR[ASCIZ/TV PARITY ERROR.
01100 /]↔ TRNE 1,40 ↔OUTSTR[ASCIZ/TV DATA MISS.
01200 /]↔ TRNE 1,20 ↔OUTSTR[ASCIZ/TV NON EX MEM.
01300 /]↔ TRNE 1,100060↔JRST L0
01400 CALLI 22↔DAC TVTIME#
01500 CALLI 14↔DAC TVDATE#
01600
01700 LAC[XWD HISTO,HISTO+1]↔SETZM HISTO↔BLT HISTO+77
01800 SETZM FTVSIX↔SETOM FTVHIS
01900
02000 ;CONVERT FROM GREY CODE TO GRAY CODE.
02100 LAC 16,[XWD L,0]↔BLT 16,12
02200 LAP TVPTR↔GO 4
02300
02400 L: POINT 4,0,-1↔ FROM←←0
02500 POINT 6,TVBUF,-1↔ TO←←1
02600 =62208 ↔ CNT←←2
02700 0 ↔ BYT←←3
02800 ILDB BYT,FROM ;4
02900 LAC BYT,GRAY(BYT) ;3
03000 LSH BYT,2 ;6
03100 AOS HISTO(BYT) ;7
03200 IDPB BYT,TO ;8
03300 SOJG CNT,4 ;9
03400 POP0J ;12
03500
03600 BEND;12/16/72-----------------------------------------------------
03700
03800 TVPTR: XWD -=6912,0
03900 TVCLIP: 703002 ;BCLIP=7 TCLIP=0 CAM=3.
04000 TVYXW: BYTE(9)50,34,40
04100 TVERR: 0
04200 GRAY: OCT 12,13,11,10,15,14,16,17,5,4,6,7,2,3,1,0
00100 SUBR(TVCAMI)------------------------------------------------------
00200 BEGIN TVCAMI;TELEVISION CAMERA INPUT - BGB - 14 DEC 1972.
00300 LAC 44↔DAC TMP44#↔AOS↔DAP TVPTR
00400 ADDI =6912↔SKIPE CTRL↔ADDI 3*=6912
00500 CALLI 11↔GO[FATAL(NO CORE FOR TVTAKE.)]
00600 CALL(SEGTV)
00700 LAC[XWD TVBUF,TVBUF+1]
00800 SETZM TVBUF↔BLT TVBUF+=10367
00900 CALL(TVIN4)
01000 LAC TMP44↔CALLI 11↔JFCL
01100 CRLF↔POP0J
01200 BEND;12/16/72-----------------------------------------------------
00100 SUBR(CAMERA)------------------------------------------------------
00200 BEGIN CAMERA
00300 OUTSTR[ASCIZ/ CAMERA = /]
00400 INCHRW
00500 ANDI 3
00600 LSH 9
00700 IORI 700002
00800 DAC TVCLIP
00900 CRLF
01000 POP0J
01100 BEND;12/6/72------------------------------------------------------